#pragma once

namespace MomogenkyouSystem	{


//	To	be revised

class Material
{
public:
	SHADEREFFECT	Effect;					//	D3D	Shader

	//MATRIX			matWorld;

	D3DXHANDLE		Param_StandardGlobals;	//	Parameter block that contains Global Parameters

	Material();

	virtual	~Material();

	//	Get Single Effect Parameter Handler
	__inline	EffectParameter GetParameter(const std::string & ParamName)		{	return EffectParameter(Effect, ParamName);	}
	

	//	Load the Effect File
	HRESULT	PrepareEffectFile(const std::string & Directory, const std::string & FilePath, D3DXEFFECTINSTANCE * pEffectBuffer);

	//	Set up a block for Standard Parameters
	void	PrepareStandardGlobalParams(MATRIX * pmatView, MATRIX * pmatProjection, float4	* pvSunPosition);
};
}